package com.ynkbny.util;


import com.ynkbny.domain.*;
import com.ynkbny.domain.dto.ProcessConfigureDTO;
import com.ynkbny.domain.dto.TEpDataCollectConfigureDTO;
import org.springframework.stereotype.Service;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

@Service
public class ConvertBeanUtil {

	/** 
	 * @Title: convertConcacter 
	 * @Description: TODO 转换联系人
	 * @param list
	 * @param enterpriseCode
	 * @return List<Contacter>
	 * @author feijiang.he
	 * @date 2021年7月10日下午2:46:09
	 */
	public static List<Contacter> convertConcacter(List<Map<String,Object>> list, String enterpriseCode) {
		List<Contacter> re = new ArrayList<Contacter>();
		for (Map<String,Object> map : list) {
			Contacter con  =new Contacter();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(map.get("idx").toString());
			con.setContacterName((String)map.get("name"));
			con.setPhone((String)map.get("phone"));
			con.setDept((String)map.get("dept"));
			con.setJob((String)map.get("position"));
			con.setFax((String)map.get("fax"));
			con.setEmail((String)map.get("email"));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
			re.add(con);
		}
		return re;

	}
	/**
	 * @Title: convertManageSystem
	 * @Description: TODO 转换用能单位能源管理体系信息
	 * @param list
	 * @param enterpriseCode
	 * @return List<ManageSystem>
	 * @author feijiang.he
	 * @date 2021年7月10日下午2:54:31
	 */
	public static List<ManageSystem> convertManageSystem(List<Map<String,Object>> list, String enterpriseCode) {
		List<ManageSystem> re = new ArrayList<ManageSystem>();
		for (Map<String,Object> map : list) {
			ManageSystem con  =new ManageSystem();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(map.get("idx").toString());
			con.setEnergyOffice((String)map.get("agency"));
			con.setEnergyOfficial((String)map.get("name"));
			con.setEnergyOfficialPosition((String)map.get("position"));
			con.setPhone((String)map.get("phone"));
			con.setFax((String)map.get("fax"));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
			re.add(con);
		}
		return re;

	}
	/**
	* @Title: convertManager
	* @Description: TODO 转换用能单位能源管理人员信息
	* @param list
	* @param enterpriseCode
	* @return List<Manager>
	* @author feijiang.he
	* @date 2021年7月10日下午2:59:19
	*/
	public static List<Manager> convertManager(List<Map<String,Object>> list,String enterpriseCode) {
		List<Manager> re = new ArrayList<Manager>();
		for (Map<String,Object> map : list) {
			Manager con  =new Manager();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(map.get("idx").toString());
			con.setManager((String)map.get("name"));
			con.setPhone((String)map.get("phone"));
			con.setDept((String)map.get("dept"));
			con.setJob((String)map.get("position"));
			con.setTraininfo((String)map.get("crtDescribe"));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
			re.add(con);
		}
		return re;

	}
	/**
	* @Title: convertEnergyMonitor
	* @Description: TODO 转换用能单位能耗监测项目负责人信息
	* @param list
	* @param enterpriseCode
	* @return List<EnergyMonitor>
	* @author feijiang.he
	* @date 2021年7月10日下午3:02:49
	*/
	public static List<EnergyMonitor> convertEnergyMonitor(List<Map<String,Object>> list,String enterpriseCode) {
		List<EnergyMonitor> re = new ArrayList<EnergyMonitor>();
		for (Map<String,Object> map : list) {
			EnergyMonitor con  =new EnergyMonitor();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(map.get("idx").toString());
			con.setMonitor((String)map.get("name"));
			con.setPhone((String)map.get("phone"));
			con.setDept((String)map.get("dept"));
			con.setJob((String)map.get("position"));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
			re.add(con);
		}
		return re;

	}
	/**
	* @Title: convertCalculater
	* @Description: TODO 转换用能单位能源计量人员配置信息
	* @param list
	* @param enterpriseCode
	* @return List<Calculater>
	* @author feijiang.he
	* @date 2021年7月10日下午3:07:07
	*/
	public static List<Calculater> convertCalculater(List<Map<String,Object>> list,String enterpriseCode) {
		List<Calculater> re = new ArrayList<Calculater>();
		for (Map<String,Object> map : list) {
			Calculater con  =new Calculater();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(map.get("idx").toString());
			con.setCalculaterName((String)map.get("name"));
			con.setPhone((String)map.get("phone"));
			con.setDept((String)map.get("dept"));
			con.setJob((String)map.get("position"));
			con.setTechnicalPost((String)map.get("crtDescribe"));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
			re.add(con);
		}
		return re;

	}
	/**
	* @Title: convertCertification
	* @Description: TODO 转换用能单位企业认证信息
	* @param list
	* @param enterpriseCode
	* @return List<Certification>
	* @author feijiang.he
	* @date 2021年7月10日下午3:13:56
	*/
	public static List<Certification> convertCertification(List<Map<String,Object>> list, String enterpriseCode) {
		List<Certification> re = new ArrayList<Certification>();
		for (Map<String,Object> map : list) {
			Certification con  =new Certification();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(map.get("idx").toString());
			con.setEnergyPass((String)map.get("crtPass"));
			con.setDirector((String)map.get("name"));
			con.setPhone((String)map.get("phone"));
			con.setPassDate((String)(map.get("crtDt")));
			con.setPassOrg((String)map.get("crtDescribe"));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
 			re.add(con);
		}
		return re;

	}
	public static  String formatterDate(Object time) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

		if(time==null) {
			return null;
		}else {
			Date date = new Date(Long.valueOf(String.valueOf(time)).longValue());
			return sdf.format(date);
		}
	}

	/**
	* @Title: convertProductStruct
	* @Description: TODO 转换Productstruct
	* @param list
	* @param enterpriseCode
	* @return List<ProductStruct>
	* @author feijiang.he
	* @date 2021年7月10日下午4:05:07
	*/
	public static List<Productstruct> convertProductStruct(List<Map<String,Object>> list,String enterpriseCode) {
		List<Productstruct> re = new ArrayList<Productstruct>();
		for (Map<String,Object> map : list) {
			Productstruct con  =new Productstruct();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(map.get("idx").toString());
			con.setProductName((String)map.get("prodName"));
			con.setProductCode((String)map.get("prodCode"));
			con.setProductType((String)map.get("prodType"));
			con.setProductUnit((String)map.get("prodUnit"));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
 			re.add(con);
		}
		return re;
	}
	/**
	* @Title: convertOutputValue
	* @Description: TODO 转换用能单位产值、增加值、销售收入信息
	* @param list
	* @param enterpriseCode
	* @return List<OutputValue>
	* @author feijiang.he
	* @date 2021年7月10日下午4:12:31
	*/
	public static List<Outputvalue> convertOutputValue(List<Map<String,Object>> list,String enterpriseCode) {
		List<Outputvalue> re = new ArrayList<Outputvalue>();
		for (Map<String,Object> map : list) {
			Outputvalue con  =new Outputvalue();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(map.get("idx").toString());
			con.setAddedValue((String)map.get("yearAdded"));
			con.setCountYear((String)map.get("yearDt"));
			con.setOutputValue((String)map.get("yearOut"));
			con.setSalesIncome((String)map.get("yearSales"));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
			re.add(con);
		}
		return re;
	}
	/**
	* @Title: convertEgConservation
	* @Description: TODO 转换用能单位节能项目情况信息
	* @param list
	* @param enterpriseCode
	* @return List<EgConservation>
	* @author feijiang.he
	* @date 2021年7月10日下午4:19:04
	*/
	public static List<Egconservation> convertEgConservation(List<Map<String,Object>> list,String enterpriseCode) {
		List<Egconservation> re = new ArrayList<Egconservation>();
		for (Map<String,Object> map : list) {
			Egconservation con  =new Egconservation();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(map.get("idx").toString());
			con.setEnergySavingAmount((String)map.get("tce"));
			con.setImproveMeasure((String)map.get("strategy"));
			con.setInvestmentAmount((String)map.get("amount"));
			con.setProjectName((String)map.get("pjectName"));
			con.setProjectTimeline((String)(map.get("dtSchedule")));
			con.setProjectType((String)map.get("pjectType"));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
			re.add(con);
		}
		return re;
	}
	/**
	* @Title: convertEgAccount
	* @Description: TODO 转换用能单位水、电、燃气户号信息
	* @param list
	* @param enterpriseCode
	* @return List<EgAccount>
	* @author feijiang.he
	* @date 2021年7月10日下午4:24:19
	*/
	public static List<Egaccount> convertEgAccount(List<Map<String,Object>> list,String enterpriseCode) {
		List<Egaccount> re = new ArrayList<Egaccount>();
		for (Map<String,Object> map : list) {
			Egaccount con  =new Egaccount();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(map.get("idx").toString());
			con.setAccountName((String)map.get("accountName"));
			con.setAccountNo((String)map.get("account"));
			con.setAccountType((String)map.get("accountTy"));
			con.setProvider((String)map.get("energySupply"));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
			re.add(con);
		}
		return re;
	}
	/**
	* @Title: convertMaterielProduct
	* @Description: TODO 转换用能单位非能源产品信息
	* @param list
	* @param enterpriseCode
	* @return List<MaterielProduct>
	* @author feijiang.he
	* @date 2021年7月10日下午4:30:35
	*/
	public static List<MaterielProduct> convertMaterielProduct(List<Map<String,Object>> list,String enterpriseCode) {
		List<MaterielProduct> re = new ArrayList<MaterielProduct>();
		for (Map<String,Object> map : list) {
			MaterielProduct con  =new MaterielProduct();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(map.get("idx").toString());
			con.setProducename((String)map.get("poName"));
			con.setProduceno((String)map.get("poCode"));
			con.setProducetype((String)map.get("poType"));
			con.setProduceunit((String)map.get("unit"));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
			re.add(con);
		}
		return re;
	}
//	/**
//	* @Title: convertOtherDataConfig
//	* @Description: TODO 转换用能单位其它数据编码信息
//	* @param list
//	* @param enterpriseCode
//	* @return List<OtherDataConfig>
//	* @author feijiang.he
//	* @date 2021年7月10日下午4:33:45
//	*/
//	public static List<OtherDataConfig> convertOtherDataConfig(List<Map<String,Object>> list,String enterpriseCode) {
//		List<OtherDataConfig> re = new ArrayList<OtherDataConfig>();
//		for (Map<String,Object> map : list) {
//			OtherDataConfig con  =new OtherDataConfig();
//			con.setEnterpriseCode(enterpriseCode);
//			con.setDataId(map.get("idx").toString());
//			con.setRemark((String)map.get("remark"));
//			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
//			re.add(con);
//		}
//		return re;
//	}
	/**
	* @Title: convertGaugeReplaceCfg
	* @Description: TODO 转换用能单位计量器具更换记录
	* @param list
	* @param enterpriseCode
	* @return List<OtherDataConfig>
	* @author feijiang.he
	* @date 2021年7月10日下午5:45:34
	*/
	public static List<Gaugereplacecfg> convertGaugeReplaceCfg(List<Map<String,Object>> list,String enterpriseCode) {
		List<Gaugereplacecfg> re = new ArrayList<Gaugereplacecfg>();
		for (Map<String,Object> map : list) {
			Gaugereplacecfg con  =new Gaugereplacecfg();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(String.valueOf(map.get("idx")));
			con.setInstallBarCode((String)map.get("data6"));
			con.setInstallManageNo((String)map.get("data5"));
			con.setInstallSerNo((String)map.get("data4"));
			con.setInstallTime((String)(map.get("data7")));
			con.setReplacedBarCode((String)map.get("data3"));
			con.setReplacedManageNo((String)map.get("data2"));
			con.setReplacedSerno((String)map.get("data1"));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
			re.add(con);
		}
		return re;
	}
	/**
	* @Title: convertGaugeCfg
	* @Description: TODO 转换用能单位计量器具信息
	* @param list
	* @param enterpriseCode
	* @return List<GaugeCfg>
	* @author feijiang.he
	* @date 2021年7月10日下午5:54:41
	*/
	public static List<Gaugeconfigure> convertGaugeCfg(List<Map<String,Object>> list,String enterpriseCode) {
		List<Gaugeconfigure> re = new ArrayList<Gaugeconfigure>();
		for (Map<String,Object> map : list) {
			Gaugeconfigure con  =new Gaugeconfigure();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(String.valueOf(map.get("idx")));
//			con.setAlignCycle((String)map.get(""));
			con.setAlignOrg((String)map.get("data16"));
			con.setAlignstate((String)map.get("data13"));
			con.setBarCode((String)map.get("data25"));
			con.setCurrentState((String)map.get("data22"));
			con.setDataCode((String)map.get("data6"));
			con.setInstallTime((String)(map.get("data20")));
			con.setInstaller((String)map.get("data19"));
			con.setLastAlignDate((String)(map.get("data14")));
			con.setNextAlignDate((String)map.get("data15"));
			con.setLinkSys((String)map.get("data21"));
			con.setLocation((String)map.get("data18"));
			con.setManageNo((String)map.get("data12"));//计量器序号
			con.setManufacturer((String)map.get("data9"));
			con.setMeterLevel((String)map.get("data4"));
			con.setMeterName((String)map.get("data1"));
			con.setMeterType((String)map.get("data2"));
			con.setModel((String)map.get("data10"));
			con.setParams((String)map.get("data5"));
			con.setParamsType((String)map.get("data3"));
			con.setPrecisionLevel((String)map.get("data11"));
//			con.setRanges((String)map.get(""));//测量范围
			con.setReportArithmetic((String)map.get("data7"));
			con.setReportRatio((String)map.get("data8"));
			con.setSerNo((String)map.get("data24"));
			con.setStateChangeTime((String)map.get("data23"));
			con.setUnAlignReason((String)map.get("data17"));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
			re.add(con);
		}
		return re;
	}
	/**
	* @Title: convertDataCollectCfg
	* @Description: TODO 转换用能单位数据采集配置项信息
	* @param list
	* @param enterpriseCode
	* @return List<DataCollectCfg>
	* @author feijiang.he
	* @date 2021年7月10日下午6:12:32
	*/
	public static List<TEpDataCollectConfigureDTO> convertDataCollectCfg(List<Map<String,Object>> list, String enterpriseCode) {
		List<TEpDataCollectConfigureDTO> re = new ArrayList<TEpDataCollectConfigureDTO>();
		for (Map<String,Object> map : list) {
			TEpDataCollectConfigureDTO con  =new TEpDataCollectConfigureDTO();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(String.valueOf(map.get("idx")));
			con.setCollectSystemName((String)map.get("colleSyname"));
			con.setCollectitemName((String)map.get("colleName"));
			con.setDataCode((String)map.get("colleCode"));
			con.setDataUsageCode((String)map.get("purposeCode"));
			con.setDataValueMax((String)map.get("valMax"));
			con.setDataValueMin((String)map.get("valMin"));
			con.setEnergyClassCode((String)map.get("colleTy"));
			con.setEnergyTypeCode((String)map.get("energyItem"));
			con.setEquipmentCode((String)map.get("devTy"));
			con.setEquipmentUnitCode((String)map.get("devCode"));
			con.setInputType((String)map.get("colleBase"));
			con.setProcessCode((String)map.get("prodWork"));
			con.setProcessUnitCode((String)map.get("workUnit"));
			con.setScope((String)map.get("rg"));
			con.setStatType((String)map.get("colleFrequency"));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
			re.add(con);
		}
		return re;
	}

	/**
	* @Title: convertDeviceCfg
	* @Description: TODO 转换用能单位重点耗能设备信息
	* @param list
	* @param enterpriseCode
	* @return List<DeviceCfg>
	* @author feijiang.he
	* @date 2021年7月10日下午6:19:47
	*/
	public static List<Deviceconfigure> convertDeviceCfg(List<Map<String,Object>> list,String enterpriseCode) {
		List<Deviceconfigure> re = new ArrayList<Deviceconfigure>();
		for (Map<String,Object> map : list) {
			Deviceconfigure con  =new Deviceconfigure();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(String.valueOf(map.get("idx")));
			con.setCurrentState((String)map.get("devRun"));
			con.setDept((String)map.get("devDept"));
			con.setDeviceName((String)map.get("devName"));
			con.setDeviceNo((String)map.get("devId"));
			con.setDeviceType((String)map.get("devTy"));
			con.setEnergyCode((String)map.get("tyCode"));
			con.setEnergyValue((String)map.get("power"));
			con.setLocation((String)map.get("devAddr"));
			con.setManufacturer((String)map.get("manufacturer"));
			con.setModel((String)map.get("devModel"));
			con.setProcessUnitCode((String)map.get("workCode"));
			con.setUsingDate((String)(map.get("dtOn")));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
			re.add(con);
		}
		return re;
	}
	/**
	* @Title: convertUnitCfg
	* @Description: TODO 转换用能单位工序单元信息
	* @param list
	* @param enterpriseCode
	* @return List<UnitCfg>
	* @author feijiang.he
	* @date 2021年7月10日下午6:27:18
	*/
	public static List<Unitconfigure> convertUnitCfg(List<Map<String,Object>> list,String enterpriseCode) {
		List<Unitconfigure> re = new ArrayList<Unitconfigure>();
		for (Map<String,Object> map : list) {
			Unitconfigure con  =new Unitconfigure();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(String.valueOf(map.get("idx")));
			con.setDesignedCapacity((String)map.get("workAbility"));
			con.setCommDate(((String)(map.get("workDt"))));
			con.setProcessCode((String)map.get("workCode2"));
			con.setUnitCode((String)map.get("workCode1"));
			con.setUnitName((String)map.get("workName"));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
			re.add(con);
		}
		return re;
	}
	/**
	* @Title: convertProcessCfg
	* @Description: TODO 转换用能单位生产工序信息
	* @param list
	* @param enterpriseCode
	* @return List<ProcessCfg>
	* @author feijiang.he
	* @date 2021年7月10日下午6:28:10
	*/
	public static List<ProcessConfigureDTO> convertProcessCfg(List<Map<String,Object>> list, String enterpriseCode) {
		List<ProcessConfigureDTO> re = new ArrayList<ProcessConfigureDTO>();
		for (Map<String,Object> map : list) {
			ProcessConfigureDTO con  =new ProcessConfigureDTO();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(String.valueOf(map.get("idx")));
			con.setProcessCode((String)map.get("workNum"));
			con.setProcessName((String)map.get("workName"));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
			re.add(con);
		}
		return re;
	}
	/**
	 * <p>Title: convertGaugeVerifyCfg</p>
	 * <p>Description: </p>
	 * @param list
	 * @param enterpriseCode
	 * @return
	 */
	public static List<Gaugeverifycfg> convertGaugeVerifyCfg(List<Map<String, Object>> list, String enterpriseCode) {
		List<Gaugeverifycfg> re = new ArrayList<Gaugeverifycfg>();
		for (Map<String,Object> map : list) {
			Gaugeverifycfg con  =new Gaugeverifycfg();
			con.setEnterpriseCode(enterpriseCode);
			con.setDataId(String.valueOf(map.get("idx")));
			con.setSerNo(String.valueOf(map.get("data1")));
			con.setManageNo(String.valueOf(map.get("data2")));
			con.setBarCode(String.valueOf(map.get("data3")));
			con.setVerifyOrg(String.valueOf(map.get("data4")));
			con.setVerifyTime(String.valueOf(map.get("data5")));
			con.setRemark((String)map.get("remark"));
			con.setUpdateTime(map.get("updateTime")!=null ? new Timestamp(Long.valueOf(String.valueOf(map.get("updateTime"))).longValue()) : null);
			re.add(con);
		}
		return re;
	}

	
}
